Building automation system

ABSTRACT

A building automation system including user interface units with touchscreens, power drivers, and a controller, all connected to a common trunk conductor. The power drivers are connected to the electrical devices and AC wiring. The building automation system further includes wireless remote controls that are connected to the trunk either through a user interface unit or a wireless transceiver. Any electrical device in the building may be controlled by any of the user interface units and wireless remote controls.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention in general relates to systems for controlling electrical devices in a building, and more particularly to such a system that allows the control of each electrical device in the building to be individually programmed.

2. Statement of the Problem

Over the course of the past two decades, a great change has occurred in the level of convenience provided by today's consumer products. The progress of technology has led consumers beyond wanting basic functions in their consumer products; they now want products that pamper and have features that are “intelligent.”

One industry that exemplifies this new expectation is the automotive sector. As users sit in their cars, everything they need is at their fingertips. Cruise controls maintain their speed while they listen to the stereo. If a user wants to reach another person, they press a single button on their car phone, the audio mutes automatically, and they speak as if the person is sitting before them. If a user isn't sure of the route they are taking, they press another button and a map appears on a screen to their side. When they reach their destination, the car's security system is automatically armed and the door locks with one press of a button on their key chain.

Yet buildings, such as houses and commercial structures, don't offer this same level of convenience and luxury. Buildings are more varied and complex than cars, creating difficulty in producing a one-size-fits-all system. In addition, a homeowner or other building user is also not stationary, like the driver is in his car. Historically, buildings have been served by separate and dissimilar systems for the control of lighting, security, climate, entertainment, and other controls. Each system has been completely independent of the others. Later, alarm companies began to add lighting features, and lighting companies began to add HVAC features, and so on. Then companies emerged that tried to tie all these subsystems together with yet another system. The failing in this approach was the “glue” that holds these systems together—the electronic connections and, more significantly, the programming system. The current state-of-the-art of this “glue” is such that the task of integrating these disparate functions becomes very complex and tedious.

Automation systems of today are a result of this history. They consist of separate systems for lighting, security, and HVAC, typically joined together by an extended version of a home theater remote control. Limitations arise from this approach. Since these systems were initially designed to serve a single function, the connection points to other systems or controls are limited. In turn, the degree to which a component of one system can interact with another is also limited. The number of interactions between the two systems is small. For instance, you can make a light come on when a security sensor trips, but to do this with a large number of sensor/light pairs is difficult.

Furthermore, each system has it's own programming method. To install or modify a combined system requires detailed knowledge of each individual system. This places a very high skill level requirement on potential installers. A combined system with four or five vendors means that each system must have its own backup or valuable programming information will be lost. There is no centralized backup point for these existing systems. When a change is made, the installer must be sure to remember to make a backup on the spot and to keep the system files together, further adding to the high level of complexity experienced by common installers.

In addition, all of the significant existing systems require a personal computer (PC) as part of the programming process. This means that each system must be installed on the programmer's PC and that the application must be run while connected to the system to make a change. If another system needs a change, the serial port connection must be moved to the other system and the new application must then be loaded and run, usually requiring a completely different method of programming than the previous system. If the systems utilize an advanced remote control or central touchscreen/display system, it too will be programmed in a different manner, causing the whole process to be repeated again.

Some systems use a PC as the controller. This is a natural temptation because PCs have a nice keyboard, large displays, and big hard disks. The problem is that they are highly complex and prone to crashes. The reliability of PCs is not likely to increase because both the operating systems and the applications become more and more complex. As vendors focus on new features to differentiate their products, no engineering resource is left available to improve reliability. A crashed home installation cannot be required to be “re-booted” in the middle of the night by the homeowner.

Some systems control lighting only and not security. Generally, these systems require PC programming (RS232 connection). They also include keypads-buttons/faceplates that require engraving, which requires detailed pre-construction planning to ensure keypad functions/engraving. Plus, they require large power enclosures and homeruns from each controlled device to the enclosures.

For example, U.S. Pat. No. 6,211,870 issued Apr. 3, 2001 to William Foster teaches a portable hand-held remote control which may be utilized for selecting designated functions in a plurality of remotely controllable multimedia processing units. The user-selectable screen objects are initially created from a general-purpose computer and transferred to the remote user interface unit. U.S. Pat. No. 6,192,282 issued Feb. 20, 2001 to Smith et al. teaches a building automation system that utilizes a central computer to provide instructions to devices of a building. The communications for the devices are all routed to the central computer via a large number of cables. Both these systems require a high level of programming, as well as a complex array of electronic communication lines.

Computerized systems typically coordinate communications by assigning each electronic device a unique address. One common way of handling the need for a unique address is that products are assigned a unique number during the production process, and this number is programmed into the device. A problem with this method is that it requires an extra production step that often requires specialized equipment.

Other systems are based on radio frequency (RF) technology and when these systems are maximized, they require additional transmitters/receivers to grow the system. These systems generally control lighting only and not security, plus they also require PC programming.

3. Solution to the Problem

The present invention solves the above problems with a building automation system that controls every system in a building in an integrated, consistent manner. For example, rather than looking at a switch on a wall as the control for a specific device, such as a light, a fan, a fireplace, or a sprinkler system, the present invention implements small user interfaces, such as touchscreens and wireless remote controls, each of which can control any device from anywhere in the building. The default display for the interface is a simple display that controls the devices in the room, or the part of the room, in which the user interface is located. This interface can be programmed to have any level of complexity, but typically will have the complexity of a conventional four-switch switchbox. By touching a button, the user can switch to another simple display that controls the devices in another room, or another part of the room. Thus, instead of walking around the building to operate various sets of switches, the user can stay in one place and “bring” the switches to herself or himself. This is a major change that affects the very relationship between a homeowner and his dwelling or a building tenant and the building.

The invention provides a central controller, a plurality of user interface units, and a plurality of device drivers, all connected to the same trunk conductor. The device drivers are also connected to the devices they drive and to a power supply. The central controller preferably stores all the settings for the device drivers. When a user operates a user interface, such as a touchscreen unit, the unit preferably sends data to the controller, which changes the settings for the specified device driver. Periodically, for example, every 50 milliseconds, the controller updates the settings for all drivers.

Preferably, there is a pair of trunk conductors, comprising a twisted pair of conductors. Preferably, this twisted pair is the inner pair of an eight-conductor CAT5 cable. Preferably, another twisted conductor pair of the cable straddles the inner pair and provides the system power, and the rest of the conductors provide the system ground. Preferably, there is a plurality of trunk cables in a building. Thus, if one trunk is cut or otherwise disabled after the building is built, to get the devices on that trunk up and running again, one only needs to make one connection between the disabled trunk and another trunk.

The feature of storing all control information in a single central controller, and updating it with input data that can come from any user interface and apply to any driven device, makes the system easy to use as discussed above, but also makes it easy to install. The installer does not have to have expert knowledge of any system. The installer only needs to connect a cable to the controller and route it to the junction boxes in the building. Then a user interface or driver is connected to each junction box as needed. This portion of the installation is, in fact, as simple or simpler than installing a conventional AC wiring system. Someone knowledgeable about the programming of the system can then proceed to program the system.

If a builder is building many similar or identical living units, such as a tract of townhouses or apartments, the installation becomes even simpler. Someone knowledgeable about programming the system programs one living unit, then the programming is copied to the other units. Preferably, a memory card is inserted into a memory card slot in the controller, and the controller automatically downloads the programming. The memory card is then inserted into the controller in another living unit, and the programming is, preferably, uploaded to all the interfaces, drivers, and the controller of that unit.

The invention provides a building automation system comprising: a plurality of programmable user interface units, each of the user interface units located in a room or associated area of a building; a plurality of power drivers, each of the power drivers located in a room or associated area of the building; a controller comprising a processor and a memory; and an electrical signal trunk connected to the controller; wherein each of the user interface units and each of the power drivers are connected to the electrical signal trunk. Preferably, the user interface units include a touchscreen. Preferably, each of the user interface units is capable of controlling each of the power drivers via the controller. Preferably, the building automation system further includes an electrical circuit panel and an electrical power conductor connected between the electrical circuit panel and each of the power drivers. Preferably, the electrical signal trunk is a low voltage control wiring, and most preferably, CAT5 cable. Preferably, the building automation system includes a plurality of electrical devices, each of the electrical devices electrically connected to one of the power drivers, the electrical devices comprising a plurality of different types of devices selected from the group consisting of lighting fixtures, fans, security systems, audio/video systems, heating systems, air conditioning systems, garage doors, garage door sensors, doorbells, window controls, sprinkler controls, garage door openers, electronic gate openers, driveway heaters, sidewalk heaters, fireplace controls, intercoms, speakers, microphones, dampers, digital cameras, hot water heaters, telephones, aquarium controls, water feature controls, pool/spa controls, fire protection systems, thermostats, and switched outlets. Preferably, the user interface units include a button separate from the touchscreen, the button adapted to control an electrical device in the room or associated area in which the user interface unit is located. Preferably, the electrical device is a lighting fixture, and the system a light for illuminating the button. Preferably, the system includes two types of wireless remote control, IR and RF, wherein the IR wireless remote control controls only the electrical devices in the room in which it is located, and the RF wireless remote control can control devices in any room of the structure. Preferably, the IR wireless remote control further includes a selector button, wherein operating the selector button changes the electrical device controlled by the wireless remote control. Preferably, the IR wireless remote control further includes up/down buttons, wherein selecting the up/down buttons adjusts the electrical output to the selected electrical device. Preferably, the IR wireless remote control further includes a flashlight and a flashlight activation button. Alternatively, the invention also provides a third type of wireless remote control, which transmits radio frequency (RF) signals as well as infrared (IR) signals, allowing the features of the two basic types to be combined. Preferably, the touchscreen displays a scene screen object for controlling a plurality of the electrical devices with a single touch. Preferably, the touchscreen displays a program screen object enabling the user to program any controllable electrical device in the building or associated areas. Preferably, the touchscreen displays screen objects for accessing three or more functions selected from the group consisting of: time, date, temperature, weather, security, intercom, audio, and sprinklers. Preferably, the user interfaces include a level control for controlling the level of power applied to an electrical device. Preferably, the level control includes a bar graph device for indicating the power level at which the level control is set. Preferably, the touchscreen displays a rooms screen object for displaying a listing of the rooms and associated areas of the building. Preferably, the touchscreen displays a screen object for displaying a list of all controllable electrical devices in the rooms and associated areas of the building.

In another aspect, the invention provides a building automation system comprising: a controller comprising a microprocessor and a memory; a plurality of programmable user interface units, each of the user interface units located in a room in a building; each user interface unit comprising: a touchscreen, a speaker, and a microphone; each user interface unit is capable of controlling an electrical device in a room in which the controller is located; and each user interface unit is capable of controlling an electrical device in a room different than the room in which the controller is located. Preferably, each user interface unit further includes a camera. Preferably, each user interface unit further includes a motion detector.

In a further aspect, the invention provides a building automation system comprising: a plurality of programmable user interface units, each of the user interface units located in a different room in a building; and each user interface unit is capable of controlling three or more appliances selected from the group consisting of lighting fixtures, fans, security systems, audio/video systems, heating systems, air conditioning systems, garage doors, doorbells, window controls, sprinkler controls, garage door openers, electronic gate openers, driveway heaters, sidewalk heaters, fireplace controls, intercoms, speakers, microphones, dampers, digital cameras, hot water heaters, telephones, aquarium controls, water feature controls, pool/spa controls, fire protection systems, thermostats, and switched outlets.

In still a further aspect, the invention provides a user interface unit for a building automation system, the user interface unit comprising: a touch screen; a speaker; a microphone; and control electronics capable of controlling three or more appliances selected from the group consisting of lights, fans, security systems, audio systems, heating systems, air conditioning systems, garage doors, doorbells, window controls, sprinklers, fireplaces, intercoms, and thermostats. Preferably each user interface unit further comprises an occupancy sensor. Preferably, each user interface unit further comprises a camera.

In yet another aspect, the invention provides a user interface unit for controlling an appliance in a selected room in a building, the user interface unit comprising: a graphical display; a memory for storing a plurality of displays to be displayed on the graphical display, the plurality of displays including a selected room display suitable for controlling the appliance in the selected room and at least one display suitable for controlling an electrical appliance in a room different than the selected room; a room button on the user interface unit; and a processor responsive to the room button for displaying the selected room display. Preferably, the selected room is the room in which the user interface unit is located. Preferably, the button is on the graphical display.

The invention also provides a method of controlling a selected electrical appliance located in a first room in a building, the method comprising: pressing a program screen object on a touchscreen user interface unit located in a second room different than the first room; responsive to the pressing, displaying on the touchscreen user interface unit a list of a plurality of appliances in the building and an indication of which room in the building in which each of the appliances is located; touching the screen to select the selected appliance from the list, responsive to the selecting, displaying on the touchscreen a list of attributes of the selected appliance; and programming the attributes. Preferably, the method further includes automatically arranging buttons showing the attributes on the screen. Preferably, the method further provides after the programming, touching a room screen object on the screen, and responsive to the touching the room key, displaying a screen including a control button for an appliance in the second room. Preferably, the list of appliances includes two or more appliances selected from the group consisting of lighting fixtures, fans, security systems, audio/video systems, heating systems, air conditioning systems, garage doors, doorbells, window controls, sprinkler controls, garage door openers, electronic gate openers, driveway heaters, sidewalk heaters, fireplace controls, intercoms, speakers, microphones, dampers, digital cameras, hot water heaters, telephones, aquarium controls, water feature controls, pool/spa controls, fire protection systems, thermostats, and switched outlets.

The invention further provides a product for controlling a selected electrical appliance located in a first room in a building, the product comprising: instructions for directing a processing unit to: display a program screen object; receive an input that the program screen object has been activated; responsive to the input, display a list of a plurality of appliances in the building and an indication of which room in the building in which each of the appliances is located; receive an input identifying a selected appliance on the list; display a list of attributes of the selected appliance; receive a value for a selected attribute; and communicate a signal for setting the selected attribute of the selected appliance in accordance with the value; and a media readable by the processing unit that stores the instructions.

In a further aspect, the invention provides a method of controlling at least three different appliances in a building having at least three rooms, each of the three appliances being in a different one of the rooms, the method comprising: entering any one of the three rooms; and operating a touchscreen control panel in the entered room to control any one of the three appliances. Preferably, the operating comprises: selecting a screen object corresponding to a selected appliance; and utilizing the selected screen object to control the selected appliance.

In yet a further aspect, the invention provides a method of programming a building automation system comprising: a plurality of programmable user interface units, each user interface unit located in a different room of a building; a controller; and an electrical signal trunk connecting the controller and the user interface units; the method comprising: electrically connecting a non-volatile memory unit storing a program to the controller; the controller recognizing that the non-volatile memory contains a program appropriate for programming the control system; and the controller uploading the program into each of the user interface units. Preferably, the recognizing comprises: the controller recognizing that the programmable appliance user interface units do not contain a program; and the controller recognizing that the non-volatile memory unit stores a program appropriate for the user interface units. Preferably, the recognizing comprises the controller recognizing that the non-volatile memory unit stores an update to a program stored in the user interface units; and the uploading comprises the controller updating the program in the user interface units. Preferably, the electrically connecting comprises engaging a plug/socket connected to the non-volatile memory with a plug/socket connected to the controller.

The invention also provides a method of backing up a building automation system comprising: a plurality of programmable appliance user interface units, each user interface unit located in a different room of a building; a controller; and an electrical signal trunk connecting the controller and the user interface units; the method comprising: electrically connecting a non-volatile memory unit storing to the controller; the controller recognizing that the non-volatile memory is blank; and the controller downloading data from the user interface units to the non-volatile memory. Preferably, the electrically connecting comprises engaging a plug/socket connected to the non-volatile memory with a plug/socket connected to the controller.

The invention also provides a method of installing a building automation system in a building having a circuit panel including a plurality of electrical power lines, a first electrical device installed in a first room in the building, a second electrical device installed in a second room in the building, the method comprising: installing a first user interface unit in the first room and a second user interface unit in the second room; electrically connecting the first user interface unit and the second user interface unit to a controller having a CPU and a memory; electrically connecting the first electrical device to a first power driver and the second electrical device to a second power driver; electrically connecting the first user interface unit to the first power driver and the second user interface unit to the second power driver; and using the plurality electrical power lines to supply power to the first power driver and the second power driver.

In still a further aspect, the invention provides a method of programming a building automation system comprising: providing a first building automation system in a first building; programming the first building automation system; providing a second building automation system in a second building; and copying the programming of the first building automation system to the second building automation system. Preferably, the copying comprises copying the programming of the first building automation system to a removable medium; transporting the removable medium to the second building; and copying the programming of the first building automation system from the removable medium to the second building automation system.

The invention also provides a slave device for use in a building automation system, the slave device comprising: a memory; a processor; a signal input/output for connecting the processor to an electrical signal trunk; a touchscreen display; and a room button separate from the touchscreen display for controlling an electrical device.

In a further aspect, the invention provides a slave device for use in a building automation system, the slave device comprising: a memory; a processor; a signal input/output for connecting the processor to an electrical signal trunk; a touchscreen display; and software or firmware stored in the memory for causing the touchscreen to display a screen object for listing the electrically controllable devices in the rooms and associated areas in the building.

In yet another aspect, the invention provides a slave device for use in a building automation system, the slave device comprising: a memory; a processor; a signal input/output for connecting the processor to an electrical signal trunk; a touchscreen display; and software or firmware stored in the memory for causing the touchscreen to display a screen object for listing the rooms and associated areas in the building.

The invention also provides a remote control device for use in a building automation system, the remote control device comprising: a memory; a processor; a selector key for selecting a function to be controlled; a display for displaying an indication of the function to be controlled; and an up/down key for controlling the function. Preferably, the remote control further includes a flashlight.

The invention also provides a level control for use in a building automation system, the level control comprising: a memory; a processor; a signal input/output for connecting the processor to an electrical signal trunk; an infrared receiver; and a level control indicator to indicate the level at which the level control is set.

In still another aspect, the invention provides a slave device for use in a building automation system, the slave device comprising: a memory containing a protective code; a processor; a trunk output connected to the processor; and software or firmware directing the processor to output the code on the trunk output in response to a predetermined signal received on the trunk. Preferably, the slave device is a device selected from the group consisting of a touchscreen user interface, a remote user interface, a level control device, and a power driver.

In yet another aspect, the invention provides a method of doing business comprising: licensing an electronic system technology to a licensee, the electronic system including an electronic slave device and an electronic controller; assigning the licensee a protective code; storing in the controller software or firmware instructing the controller to: receive the protective code from the slave device; and not recognize or communicate with the slave device if the code is not received. Preferably, the electronic system is a building automation system. Preferably, the process of receiving the protective code includes sending a message from the controller to the slave device and receiving the protective code in response to the message.

In yet a further aspect, the invention provides a method of enforcing copyright protection for software or firmware, the method comprising: providing an electronic system including a system controller and an electronic device, the system controller including a processor and a memory, the electronic device including protectable software or firmware; the memory including instructions to cause the processor not to communicate with or recognize the device if the software or firmware does not include a proper copyright notice. Preferably, the system requires a working address for the device to communicate with the controller, and the not communicating with or recognizing comprises not providing a working address to the device.

The present invention eliminates the need to access a PC to control home management features. It further eliminates the need for an “always-on” and/or dedicated PC to control home management features and eliminates program incompatibility issues running on a Windows-based PC. The present invention provides convenient access to all home management features from anywhere a user interface unit is installed. In addition, the controller is reliable, efficient and compact. Other features, objects, and advantages of the invention will become apparent from the following description when read in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of a plan view of a conventional prior art building electrical power and control diagram with conventional switches, devices, and wirings;

FIG. 2 is a block diagram of the building automation system according to the invention;

FIG. 3 is an illustration of a plan view of the building automation system according to the invention;

FIGS. 4 and 5 are illustrations of a controller according to the invention;

FIG. 6 is an illustration of a perspective view of a controller cabinet according to the invention;

FIG. 7 is an illustration of a perspective front view of a power driver according to the invention;

FIG. 8 is an illustration of a perspective back view of a power driver according to the invention;

FIG. 9 is an illustration of an exploded view of a power driver and double wall outlet box according to the invention;

FIG. 10 is an illustration of a front perspective view of a user interface unit according to the invention showing a default display as may be displayed in an exemplary room in a house;

FIG. 11 is an illustration of a menu displayed upon touching the additional menu button of the menu of FIG. 10;

FIG. 12 is an illustration of a menu displayed upon touching the rooms button of the menu of FIG. 11;

FIG. 13 is an illustration of a perspective view of a wireless remote control docked to a wireless remote charger according to the invention;

FIG. 14 is an end view of the wireless remote control of FIG. 13;

FIG. 15 is an illustration of a front view of a wireless remote control according to the invention;

FIG. 16 is an illustration of a perspective view of a level control according to the invention;

FIG. 17 is a flowchart of a method for controlling a selected electrical appliance in a room in a building according to the invention;

FIG. 18 is a flowchart of a method for programming a building automation system comprising a plurality of user interface units according to the invention;

FIG. 19 is a flowchart of a method for backing up a building automation system comprising a plurality of programmable user interface units according to the invention;

FIG. 20 is a block diagram illustrating the preferred communication sequence between the controller, the user interface units, and the controlled devices;

FIG. 21 is a flowchart of a method for installing a building automation system according to the invention; and

FIGS. 22A and 22B is a flow chart illustrating the various types of display screens available in the preferred embodiment and their functional relationship.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

1. Overview

FIG. 1 is an illustration of a prior art conventional wiring diagram 50 in a conventional building. In FIG. 1, the portion of building 40 shown includes a utility room 41, a foyer 42, a closet 43, a family room 44, a bedroom 45, and a bedroom closet 46. FIG. 1 also shows an area associated with the building, namely, partially enclosed patio area 47. Other areas associated with a building in which portions of a building automation system may be located are driveways, sidewalks, lawns, etc. These are not shown in FIG. 1 because of space limitations. As known in the art, many conventional utility rooms 41 include a breaker panel 5 where the incoming AC power from the power company is split into separate circuits, each with a circuit breaker 4. In this way, all of the electrical devices throughout a building are provided with electrical power. For example, AC wiring 7 exits breaker panel 5 and supplies electrical power to single wall switch 17 in closet 43 which switches electrical power on and off to closet lighting fixture 19, via AC wiring 18. In addition, AC wiring 6 splits off of AC wiring 7 and supplies electrical power to double wall switch 11 in foyer 42, which wall switch switches electrical power on and off to lighting fixture 16, via AC wiring 15. Double wall switch 11 also switches electrical power on and off to lighting fixture 10. AC wiring 6 supplies electrical power to AC wiring 8 which supplies power to a single wall switch 14 in utility room 41, which single wall switch switches the power on and off to lighting fixture 13, via AC wiring 12. Similarly, AC wiring 8 exits breaker panel 5 and supplies electrical power to a triple wall switch 25 in family room 44, which triple wall switch switches electrical power on and off to a fireplace control 40 of fireplace 28, via AC wiring 27. Also, triple wall switch 25 switches electrical power on and off to a fan with light 22, via AC wirings 23 and 26, and switches electrical power on and off to recessed ceiling lights 21, via AC wiring 24, and lighting fixtures 20 and 30, via AC wiring 29. AC wiring 9 exits breaker panel 5 and supplies electrical power to a single wall switch 31 in bedroom closet 46 which switches electrical power on and off to lighting fixture 33, via AC wiring 32. Also, AC wiring 9 supplies electrical power to a double wall switch 35 in bedroom 45, via AC wiring 34, which double wall switch switches electrical power on and off to lighting fixture 38 and switched outlet 39, via AC wirings 36 an 37.

FIG. 2 is an illustration of a preferred embodiment of a building automation system 120 according to the present invention. Building automation system 120 comprises system control electronics 200, trunk lines 159 and 170, a plurality of user interface units 201, and a plurality of power drivers 202, which together are referred to herein as slave devices 201, 202. A plurality of electronic devices 203 are controlled by building automation system 120. System control electronics includes a controller 122 and electronic modules 117, sometimes referred to as add-on cards 117. These electronic modules 117 are typically specialized low-voltage drivers that are located in controller cabinet 172 (FIG. 6), or they may be electronic devices that perform specified functions. For example, preferably, one of the add-on cards is a WWV receiver 118 for receiving time signal broadcast from NIST. This enables building automation system 120 to have accurate time 24 hours of the day, 7 days of the week. Another preferred add-on is an audio storage memory 116, including prerecorded sounds such as dinner bells, environmental sounds such as running water and bird sounds, alarm clock sounds, grandfather/cuckoo clock sounds, and audible messages such as break alerts. Controller 122 is connected to modules 117 via bus 119, to breaker panel 121 via AC wiring 125, and to user interface units 201 and drivers 202 via trunk lines 170 and 159. Drivers 202 are connected to controlled devices 203 via AC wiring 204.

Five types of user interface units 201 are shown in FIG. 2. The primary user interface unit is, preferably, a wall mounted unit 132, 162 that is hardwired to a trunk, such as 170. These may come in several sizes, such as a large size 132 and a smaller size 162. They may also come in a tabletop unit, which includes a tripod to hold it upright and an extension cord that plugs into a wall jack. Another type of user interface unit 201 is a variable output device, which we refer to herein as a level control 140, or simply a level control. Often, a power level control 140 is referred to in the art as a “dimmer”, since, when used to control lights, they can dim the lights. However, herein, level controls 140 may also control devices other than lights, such as a fan, or other aspects of the system, such as an audio level, or the temperature of a room. Generally, a level control controls the power to a device, though it may also control another electrical parameter. A further type of interface unit 20 is a wireless remote control 150, which preferably communicates with a level control 140 or a wall mounted interface unit 162 via infrared. (IR) radiation 151. User interface unit 150 is preferably small, most preferably about the size of a key fob. Yet another type of user interface unit 201 is a larger wireless remote unit 176, which communicates via radio frequency (RF) radiation with a transceiver 177 that is hardwired to a trunk, such as 159. Interface unit 176 is preferably about the same size as the smaller wall-mounted interface units 162. The smaller remote may be an RF remote, and the large an IR remote, or both the smaller unit 150 and the larger unit 176 may use both IR or RF. Preferably, all the interface units 201 are in some way connected to a trunk line, such as 170 or 159.

An important feature of the invention is that all slave devices 201, 202 have an electrical signal input/output 290, 291, 292, 293, 294, etc., connected to a signal trunk 159, 170, which trunk is connected to controller 122. Herein, the term “electrical signal” is used in the normal sense that includes electrical pulses that carry information; and the term “signal trunk” or simply “trunk” means a conductor that carries non-trivial information, and does not include conductors that only carry power.

As will be seen in more detail in connection with the discussion of FIG. 3, controlled devices 203 may be any building devices that are capable of being electronically controlled, for example, lighting fixtures, fans, security devices, audio/video devices, heating devices, air conditioning devices, garage doors and garage door sensors, doorbells, window openers, sprinkler valves, garage door openers, electronic gate openers, driveway heaters, sidewalk heaters, fireplace controls, intercoms, speakers, microphones, dampers, digital cameras, hot water heaters, telephones, aquarium controls, water feature controls, pool/spa controls, fire protection systems, thermostats, and switched outlets. Drivers 202 may be any electronic element capable of driving a controlled device 203. Numbered elements of FIG. 2 not discussed in this paragraph will be discussed in connection with FIG. 3.

FIG. 3 is an illustration of the building automation system of FIG. 2 plus additional controlled devices installed in the building and associated building areas of FIG. 1. As indicated above, because of space limitations, not all of the building and associated building areas are shown. It is a feature of the invention that conventional building wiring, such as 8 and 9, and controlled units, such as lights 129, as shown in FIG. 1 may be incorporated into a building automation system according to the invention simply by locating a controller 122 in a cabinet 172, in a utility room 41 for example, placing user interface units, such as 132, in appropriate places within the building, preferably at least one in each room, placing drivers as necessary to drive the devices in the building, and connecting the user interface units and drivers to trunk lines, such as 170 and 159. In some embodiments, drivers already in place may be utilized with the invention. However, in the preferred embodiment, the automation system according to the invention is installed in new buildings with user interface units 201 replacing conventional switches and controls and specialized drivers 202 designed specifically for the system 120 used in place of conventional drivers.

2. Hardware and Functioning of Hardware

Turning now to the details of FIG. 3, building automation system 120 includes a controller 122 connected to a breaker panel 121, via AC wiring 125. Controller 122 is preferably housed in a cabinet 172 which preferably includes at least one module bay 173, as shown in FIG. 6, for holding additional low voltage electronic driver modules 117. Breaker panel 121 provides electrical power to drivers 127, 143, 158, 206, 220, 231, 222, and 237 via AC wiring 128, 124, 123, 207, 221, 230, 223, 228, and 236, respectively. Power driver 127 provides controlled electrical power to lighting fixtures 129, 139, 142, and 166 via AC wiring 130, 138, 134, and 135 respectively. Power driver 143 supplies controlled electrical power to lighting fixtures 145 and 165, light 148, fan 149, recessed ceiling lights 167, via AC wiring 144, 146, 147, and 141, respectively. Power driver 158 supplies controlled electrical power to fireplace control 154 of fireplace 28, lighting fixture 157, lighting fixture 163, switched outlet 164, via AC wiring 155, 156, 160, and 161, respectively. Power driver 206 supplies controlled electrical power to shades 208 which control solar heating, windoware 209, air conditioner 210, and intercom/speaker/microphone system 211 via the indicated AC wiring. Power driver 220 provides controlled electrical power to furnace 212, air control dampers 213, hot water heater 214, and aquarium heater 215 via the indicated AC wiring. Power driver 222 provides controlled electrical power to garage doors 216, electric gate 217, heated sidewalks and driveway 219, and pool/spa heaters 219 via the indicated AC wiring. Power driver 229 provides controlled electrical power to sprinklers 224, drapes 225, door locks 226, and digital camera 227 via the indicated AC wiring. Power driver 231 provides controlled electrical power to fire detection system 232, flood monitoring system 233, humidity controller 234, and outdoor lighting 235 via the indicated AC wiring. Power driver 237 provides controlled electrical power to home theater audio/visual components 238, phone PBX 239, voice mail control 240, and doorbell 241 via the indicated AC wiring. Similarly, it is evident that any electronic or electrical device in a building can be driven by an appropriate driver.

Drivers 127, 143, 158, 206, 220, 222, 229, 231, and 237 receive the data needed to set the power level provided to the driven devices from controller 122. The data is provided to the controller by a network of user interface units 132, 140, 150, 162, 168, 169, and 176 (via transceiver 177) via low voltage control trunks 159 and 170. Specifically, user interface units 132, 140, 152, and 162 are connected with controller 122 via low voltage control trunk 170. User interface units 168, 169, and transceiver 177 are connected with controller 122 via low voltage trunk 159. In FIG. 3, the RF wireless remote control 176 is shown located in family room 44, but it can be moved throughout the building. It communicates with transceiver 177 located on patio 47. In the simplified building shown in the drawing, only one transceiver 177 is necessary. Generally, there will be several transceivers 177 placed strategically about a building so that RF wireless interface 176 anywhere in or about the building can communicate to controller 122. Also preferably, building automation system 120 includes IR wireless remote control 150 that also can be moved about a building from room to room. IR wireless remote control 150 communicates with controller 122 via user interface unit 162 located in the room in which remote control 150 is used. In FIG. 3, wireless remote control 150 is shown located in bedroom 45.

A feature of the invention is that a single control trunk, such as 170, can be used to control many devices. However, in practice, a building may include one or several control trunks 159, 170 where each trunk enables communications between that portion of the building that a particular trunk services and controller 122. Thus, if one control trunk goes down, only a portion of a building is affected, and the affected portion can be brought back on line simply by connecting its control trunk to a working control trunk at one place. If a new device is installed in a building with an automation system according to the invention, the driver for the device only needs to be connected to any available control trunk. For example, if a user wishes to install a new level control 140 in closet 46, the user simply locates the nearest control trunk and connects the level control to it. In this case, the connection can be made with either trunk 159 or trunk 170. This is so because the same data is communicating across all of the control trunks 159, 170.

FIG. 4 is an illustration of the preferred embodiment of controller 122. Controller 122 preferably comprises an electronic processor 242, bus 243, memory connector 244, memory 245, RS-232 port 249, a small battery (not shown) to provide power to the clock, and trunk drivers 260 and 261. It also includes a connection 246 to power supply 174 and backup battery 175 in cabinet 172 (FIG. 6). Preferably, memory connector 244 includes a plug/socket 248 for connecting to a memory, such as a Flash memory. Preferably, memory 245, memory connector 244, and trunk drives 260 and 261 are connected to processor 242 via bus 243. The power supply is connected to processor 242 and to memory 245, memory connector 244 and trunk drives 260 and 261, though the latter connections are not expressly shown in FIG. 4 for clarity. In the preferred embodiment, processor 242 includes a microprocessor and a digital signal processor. The microprocessor is preferably a Microchip model PIC 185452 with embedded EEPROM and the digital signal processor is preferably a TMS 320VC5502 digital signal processor. Memory 245 preferably includes a SDRAM and a NAND FLASH memory. In the preferred embodiment, the SDRAM is a Hitachi model HM5257165 and the NAND Flash memory is a Toshiba TH58100FT. Memory connector 244 is preferably an MMC card connector such as commonly used in electronic cameras and music players. Plug/socket 248 may be either a plug adapted to connect to a socket or a socket adapted to connect to a plug. The important aspect of plug/socket 248 is that it enables quick and simple connection of a removable non-volatile memory medium, such as will be no problem for someone not skilled in computers to use. Non-volatile medium 533 (FIG. 5) may be any non-volatile memory medium, such as a hard drive, a tape, a disk, a card, etc. Trunk drives 260 and 261 are MAX drivers. They communicate at either a 250 K-baud or 500 K-baud rate, whichever is selected, with full cyclic redundancy check error checking. Power supply 246 provides 24 V DC power from a conventional 110-120 V AC input, and battery 247 provides 24 V DC backup power and is rechargeable. While only two trunks are expressly shown in FIG. 4, dots 259 represent four additional trunk drivers and trunk lines in the preferred embodiment for a total of six. Each trunk preferably is capable of driving 50 devices. The invention contemplates a slave controller (not shown), which can be included in building automation system 120, particularly in large buildings. In this case, the slave controller would be located on one trunk, and have a plurality of additional trunks attached to it. However, the building automation system is preferably designed for one controller 122.

FIG. 4 also illustrates the structure of the preferred embodiment of a trunk line 170. Preferably, trunk line 170 is a CAT5 unshielded cable, which, as is known in the art, includes eight conductors in four twisted pairs of conductors. Preferably, center twisted pair 262 and 264, which are the four and five conductors of the CAT5 cable, provides an RS422 communication line. As is known in the art, an RS422 line comprises a twisted pair with one conductor high and the other low. The second twisted pair, 266 and 268, which are the three and six conductors of the CAT5 cable, provide the system 24 V DC power. The other conductors 269, i.e., the one and two and the seven and eight conductors of the CAT5 cable, provide the system ground. Preferably, each of conductors 262, 264, 266, 268, and 269 connect to every hardwired user interface 132, 140, 162 and each transceiver 177 along the trunk and to every driver 202 along the trunk.

FIG. 5 is an illustration of controller module 526. Controller module 526 preferably includes memory connector 244, a UL-rated circuit board 528 including controller 122, anodized aluminum case 529, and UL-rated plastic faceplate 530. An MCC flash memory card 533 is shown ready to be inserted into memory connector 244.

FIG. 6 is an illustration of an electronics cabinet 172 with a controller module 526 installed. In the preferred embodiment, electronics cabinet 172 is a conventional metal electronics cabinet with six module bays 173. If a user desires to highlight the technical aspects, the cabinet can be stainless steel or some other metal and be placed in a hallway; however, any form of electronics cabinet with any number of module bays 173 can be used. Module bays 173 are used for controller module 526 and driver modules 117 (FIG. 2) that are not distributed elsewhere in the building. While the standard driver has four driver stages or channels, as discussed below, the invention contemplates that some drivers will have many more. For example, a security driver module may have a dozen or more drivers to drive all the security devices, such as detectors and cameras, in a large building. Alternatively, several four-channel drivers may be used to provide a complex function such as security. Also included in control cabinet 172 is a power supply 174 and battery backup 175. When installing a new system in a building, upgrade bays can be labeled for future systems to be installed and wiring for such upgrades installed at the time of construction of the building.

FIG. 7 is an illustration of the front or room side of an exemplary power driver 127, and FIG. 8 is an illustration of the back or wall side of power driver 127. FIG. 9 shows an exploded view of a power driver 127 over a double wall outlet box 179. Drivers, such as 127, are contact closure and low voltage relay modules that provide combinations of input/output contacts. Power drivers come in various sizes to fit the needs of a building, but preferably they are 15-Amp, 1800 Watts/120 Volts and direct electrical power to a plurality of devices, preferably four. Power drivers 127 are designed to fit a standard double-gang electrical box 179. Power driver 127 preferably includes an extruded anodized aluminum face 770 having a plurality of cooling fins 774 for dissipating heat and a UL-rated plastic housing 771 with a UL-rated circuit board 779 (FIG. 8). Preferably, power driver 127 includes channel activation lights 775, for showing which of the four channels is activated and which are not. Channel activation lights 775 may also indicate what is happening on the trunk connected to the driver, such as whether a specific trunk is transmitting, receiving, or is hung up by appropriate signaling, such as by flickering at various rates. Power driver 127 includes a ground screw 776 for connecting the ground wires from the associated AC wiring, such as 128 (FIG. 3), wiring connections 777 for connecting the live wire connections from AC wiring 128, and a cutout 778 for feeding the associated low voltage control trunk 170 through the power driver. As shown in FIG. 9, the faceplate of double wall outlet box 179 is removed to facilitate attachment of power driver 127. In addition, double wall outlet box 179 includes an outrigger 180 on the bottom to attach and retain the associated low voltage control trunk 170. Power driver 127 preferably has a width approximately that of a double switchplate/wallplate and a height slightly taller than a double switchplate/wallplate. The electrical connections are preferably pig-tailed to wiring connections 777, so if you have to replace an electrical device, the wiring is snapped out and then snapped into a replacement device. The above system allows the building automation system to be easily installed. For example, a house may be wired with conventional wall boxes. At each wall box, a loop in the CAT5 cable low voltage control trunk 170 is clipped to the lower edge of the wall box. Then drivers and user interface units may later be installed as needed. Blank wall plates may be installed to support the addition of wired remote controls as needed. In the preferred embodiment, each driver 127 has four driver channels. The preferred driver includes a processor with embedded EEPROM, preferably a model PIC 16F873-201/SO sold by Microchip Technologies, Inc., 2355 West Chandler Boulevard, Chandler, Ariz., 85224 (hereinafter “Microchip”). As indicated above, drivers 202 can include drivers to control any electrical device in a building including indoor and outdoor lighting, fans, sprinklers, pool/spa heaters and pumps, electronic drapes, windoware units, fireplaces, garage doors, electronic door locks, hot water heaters, fire detection and monitoring equipment, electronic gates, digital security cameras, motion sensors, flood monitors, humidifiers, home theater units, phone PBX, voice mail, intercom, door phone, aquarium sensors and heaters, sidewalk and driveway heaters, and other peripheral systems and devices in a building. Drivers also control HVAC units including furnaces, air conditioners, solar heating panels, and dampers for individual registers in an HVAC system. The damper system is one that is very useful because of its ability to zone control the entire house.

FIG. 10 is an illustration of a touchscreen user interface unit, such as 162. User interface unit 162 preferably includes a UL-rated molded plastic housing 251 with a molded color finish, and a touchscreen 188 with integrated monochrome or color LCD display 250 for displaying menus and images to a user. The menu shown in FIG. 10 is the default menu for controlling each device in the room. User interface unit 162 preferably includes a speaker 182 and a microphone 184 for communications between users and other audible signaling, an infrared (IR) sensor 183 for communicating with a wireless remote control 150 (FIGS. 3 and 13) or other IR devices, a room button 185, a motion detector 186, often referred to as an occupancy sensor, for detecting the motion of persons in a room, and a digital camera 187 for taking digital photographs of a room. Room button 185 is programmable and is preferably programmed to activate a key function that a user is most likely to activate when entering the room, such as turning on the main lighting in the room where user interface unit 162 is located. The button is pre-programmed by the user or installer to quickly enable a function to be activated without utilizing the menu displayed on touchscreen 188 of user interface unit 162. Preferably, room button 185 includes a light for lighting the button. Motion detector 186 preferably includes a two-zone motion detector that detects motion in at least one direction. Preferably, motion detector 186 detects motion in two directions by use of shutters on the sides of motion detector 186 that control or restrict that field of view. These shutters are adjustable to facilitate the detection of motion in an entire room. Digital camera 187 has streaming video capabilities to enable building automation system 120 to capture and transmit either still or moving video pictures from remote sites, which pictures can be sent, via communication lines, wireless or otherwise, to other persons or monitoring systems, such as security monitoring services or the police. Preferably, microphone 184 and speaker 182 of user interface unit 162 act as an intercom for room-to-room communication. As noted above, building automation system 120 includes an audio storage memory 116 (FIG. 2). The various sounds and messages noted above can be programmed to play throughout the building or house or in specific rooms through speakers 182 in user interface unit 162 or other remote speakers or audio system. For example, doorbells can be programmed to sound in any room, via speaker 182. User interface units 162 are of varying sizes that fit the needs of the particular room in which they are located. For example, in a large custom house, the master bedroom suite may have a large user interface unit with color LCD display to provide full functionality and clear menus and digital images to a user, while, on the other hand, a simple bedroom may have a smaller user interface unit with a monochrome LCD display. User interface unit 162 preferably includes a temperature sensor 252 that measures a room's temperature and passes this data to controller 122, so that controller 122 can adjust the HVAC system accordingly and adjust appropriate dampers for individualized climate control in each room.

User interface unit 162 is low voltage and, as discussed in connection with FIG. 4, is system powered via trunk line 170. It preferably includes a UL-rated circuit board that preferably incorporates a 16-bit, 16K microprocessor 1020, preferably with an embedded Flash memory 1022. In the preferred embodiment, it includes a PLCC-44 microprocessor with embedded EEPROM and a Microchip model PIC 18F452-I/L in the basic unit. An enhanced unit also includes a Toshiba model TC58FVB160AF chip with an embedded 1MX16 EEPROM Flash memory and a Toshiba model TH58100FT chip with a 128×8 NAND EEPROM 48-TS. A user interface may also include a TMS 320VC5502 digital signal processor. The electronics of each user interface unit 162 preferably also includes software, which is object based and table driven. This software is used to program and display the display 250. Housing 281 is preferably about 4.6 inches wide by 5.7 inches high and 0.75 inches thick.

Turning to display 250, for clarity, to differentiate between hardware devices 201, 202, 203 and devices that appear on the display of touchscreen units, buttons and other devices that are shown on the screen will be referred to herein as “screen objects”. Display 250 shown in FIG. 10 includes the following screen objects: touch buttons for controlling the main light, the center light, the front light, and the rear light in the room, which in this example is bedroom 45 (FIG. 3); buttons for controlling music, for providing lighting appropriate for setting several scenes, including reading, moving about the room, and cleaning the room; plus a button to turn all lighting off. Scene control is a feature of the invention. Scenes can be lighting scenes including lights in a designated zone. Lighting zones can specify, for example, all wall mounted lighting fixtures, or all ceiling mounted lighting fixtures, or a single lamp, or can be a mixture including any lighting fixture; or a lighting zone may include lighting fixtures in several rooms or a room and adjoining hallway. Lighting zones can be any combination of lighting fixtures a user desires. Scenes can also include audio or any other controllable function in a building. For example, the read scene can include suitable lighting for reading in bed, soft music, a turned-off TV, and a turned-down temperature.

Display 250 also includes an additional pages button 253. This button permits the user to page through additional displays programmed for the room. That is, in large rooms there will be more buttons programmed than can be effectively displayed on one display; these can be reached through the additional pages button. Display 250 also displays the accurate time and room temperature at 254.

FIG. 11 illustrates one of the additional pages 1100 available by touching additional pages button 253. Preferably, this would be the last page, and touching additional pages button 253 on this page would return the user to first page 250. Page display 1100 includes buttons for controlling the fan, the air conditioning, and the heat in bedroom 45. A window 1102 shows the current status of temperature control, i.e., the air conditioning is on the low setting, and another window 1104 displays the room temperature. Page 1100 also includes a “rooms” button 1106, which, if touched, causes unit 162 to display a list 1200 of buttons for all the rooms in the building, an example of which display is shown in FIG. 12. Touching a button in rooms display 1200 causes unit 162 to display the current default display for the selected room. Every device in that room can then be controlled as just described for bedroom 45. For example, if kitchen button 1208 is touched, the default display for the kitchen comes up and every device controllable from the kitchen interface unit display can be accessed in the same manner on the distant unit as they can from the kitchen unit. Additional pages button 253 pages through additional displays that include rooms in the house not shown on display page 1200. In display 1200 and any of the other additional pages available in rooms mode, touching room key 1106 returns the unit to the default display of the room in which interface unit 162 is located, i.e., the default display of bedroom 45. Alternatively, a plan view of the building with each room shown can replace list 1200. In this alternative, the default display for the desired room is retrieved by touching the desired room on the plan view, and pressing additional pages button, remote control user interface unit 150 shows different floors of the building. Display page 1200 also includes a program or access button 1110 for accessing devices in other locations in the building. In the preferred embodiment, this button causes interface unit 162 to display a list 1305 (FIG. 15) of buttons showing all devices programmable by system 120, which list will be discussed in detail in connection with FIG. 15. Program button 254 may be called by other terminology; the important feature is that it allows the user to access devices in locations other than the present room. If touchscreen 188 is not touched for a programmable predetermined time, such as 30 seconds, the display returns to default display 250.

FIG. 13 is an illustration of wireless remote user interface unit 150 in a wireless remote charger 193, and FIG. 14 is an end view of unit 150. User interface unit 150 is a portable and compact wireless remote that preferably uses IR waves to communicate functions to IR sensor 183 of the user interface units, such as 162, connected to trunk lines 170, 159. It is preferably about the size of a key fob, i.e., no more than ten cubic centimeters in volume, and preferably five cubic centimeters or less. The preferred embodiment of remote housing 169 is about 1.25 inches by 2.5 inches by 0.5 inches. Wireless remote control 150 preferably includes up/down buttons 189, selector button 191, display 190, flashlight switch 192, flashlight 198 (FIG. 14), IR transmitter 199, and key fob hook 181. The electronics of remote 150 preferably include a rechargeable battery and a processor 1320 with embedded memory 1322. In the preferred embodiment, the processor is a PIC 16F873-201/SO microchip and a Cory quad driver. Charger 193 includes a notch 194 to provide clearance for hook 181, so that a user's keys, for example, can be attached to key fob hook 181 of wireless remote control 150 without interfering with the docking arrangement between wireless remote control 150 and wireless remote charger 193. Preferably, display 190 is a two-character display.

Up/down switch 189, selector switch 191, display 190, and the operating software of controller 122 and remote 150 operate together to permit the user to control any function in the room in which the remote is located. System 120 knows which room the remote is in by recognizing which wall interface unit, such as 162, is receiving its IR signal. Both remote 150 and controller 122 are programmed to control selected functions in each room. The function to be controlled is selected with selector switch 191. The remote indicates which function is being controlled using a two letter code, such as “LT” for light, “AU” for audio, “HT” for temperature, “AL” for alarms, “L1,” “L2,” or “L3” for supplemental lights, etc. By pressing selector 191, the user can cycle through the available functions. Up/down button 189 then controls the function shown in display 190. For example, if a user wanted to dim the lights in the room, the user would depress selector button 191 until “LT” is displayed on the two-character display, and then the user would depress the down arrow button of up/down buttons 189 to dim the lights in the room. The IR signals that remote 150 produces are the same for each room. For example, if the “LT” function is selected by selector 191 and up/down switch 189 is pushed up, the same IR signal, which we shall call the “LT Up” signal, is emitted by remote 150, no matter what the room in which it is located. Controller 122 is programmed to know what device(s) is or are to be controlled by the “LT Up” signal in each room. If, in this example, the remote is in family room 44 and system 120 is programmed to control recessed ceiling lighting 21 when the “LT” is selected by the remote, then when the “LT Up” signal is received by interface unit 152 and passed to controller 122 via trunk 170, controller 122 places the appropriate communication on trunk 170 to cause driver 143 to increase the power level to recessed lighting 21.

Wireless remote control user interface 150 allows a user to walk through a building and control the things only in the room the user is in without worrying about controlling other things in the building. So, for instance, if a user walks into a room and presses up/down buttons 189, wireless remote control 150 controls the lighting in that room, or whatever other function that the user has set up as the primary function of up/down buttons 189 in that room. It can provide complete access to every function of building automation system 120: it can allow a user to open their garage door; arm or disarm the security system; turn lights on, off or dim; or adjust audio levels and temperature as a user walks through a building. Preferably, wireless remote control 150 is waterproof and can be slipped into a user's pocket, fastened to a chain, or placed on their desk. While wireless remote control 150 is being charged by wireless remote charger 193, buttons 189, 191, and 192 on wireless remote control 150 are operable to a user.

FIG. 15 is an illustration of wireless remote control user interface 176 that preferably uses radio frequency (RF) transmitters to communicate with transceivers 177. Wireless remote control 176 preferably includes: a display 195 for displaying menus and images similar to the menus and images of user interface unit 162; and a microphone 196 and a speaker 197 for communicating between users throughout the building via automation system 120. The electronics of remote 176 are similar to the electronics of user interface 162, except that it also includes a transceiver 205 for communicating with transceiver 177. Like user interface 162, it includes a microprocessor 1318 with embedded memory 1319. In the display shown, a list 1305 of devices and rooms they are in appears when program button 254 (FIGS. 10 and 11) is touched. List 1305 includes a listing 1310 of all the devices that can be controlled by system 120 and an indication 1312 of the locations where the devices are located. List 1305 can be scrolled through by using scroll buttons 1315 and 1316. When the individual device is touched, the control attributes for that device are displayed. For example, if the main light in the master bedroom is touched, a display showing a light switch similar to the main light switch in display 250 of FIG. 10 is shown. In this manner, any device in the building can be controlled from any user interface unit 201.

FIG. 16 is an illustration of a level control 140, which typically controls a single function, such as lighting, fireplace, fan, sound, etc. Level control 140 preferably comprises a level control electronics housing 282 which fits into a cutout 287 in a wall plate 284 and includes an IR sensor 281 for receiving IR signals from a wireless remote control 150 and an energy level indicator 283 for displaying the energy level of the particular device controlled by level control 140. Energy level indicator 283 comprises a plurality of LEDs. At low energy levels, only the lower LEDs are lighted. The higher the level of LEDs 283 that are lighted, the higher the energy. Thus, the energy level is easily visible from across the room. The electronics of level control 140 include a microprocessor 285 and memory 286 which are located on a circuit board within level control housing 282. Preferably, the memory is embedded. The preferred processor is a Microchip model PIC 16F873-201/S with embedded EEPROM. Level control electronic housing 282 is preferably about two inches high and an inch wide by about 0.5 inches thick. Preferably, it fits within a single-gang box, and includes a molded ABS wall plate 284 that comes in a variety of colors. Level controls 140 are typically used in small spaces such as single-zoned bathrooms, utility closets, etc.

Level controls 140 preferably operate similar to a true rocker style level control operation and include full dimming capabilities. Level controls 140 have the familiar look of most architectural style level controls, but a number of extra features have been added. Preferably, level controls 140 are capable of creating lighting scenes and turning ceiling fans on simultaneously with one touch. Level controls 140 preferably are programmed to start lighting with a gradual rise to the selected brightness level, and gently fade the lighting fixtures when switched off. Level controls 140 “remember” the last light level used and will go directly to that level when switched on and off.

3. Programming

An important aspect of the building automation system according to the invention is the software and firmware programming stored in the memories discussed above. This software includes software and firmware controlling the internal functioning of user interface units 201 and drivers 202. For example, touchscreen interface units 132, 162, and 176 include software that creates the display on the units. This internal software is generally known in the art, and one skilled in the art can easily create such software or firmware based on the description of interface units 201, the displays in the interface units that utilize displays, and drivers 202 given herein. Thus, it will not be discussed in detail herein. However, the software that facilitates the communications between controller 122 and slave devices 201, 202 is novel and important to the invention. We will first present a brief overview of this programming, and then discuss it in detail.

As indicated above, when system 120 is installed, every slave device 201, 202 is connected to a trunk. When the system is commissioned each slave device, including all user interfaces 201 and all drivers 202, including all add-on cards 117, is assigned an address. Communications between controller 122 and slave devices 201, 202 follow a novel protocol, the data packet 420 that is illustrated in FIG. 20. Periodically, preferably every 50 milliseconds (msec), controller 122 communicates a global synchronization signal 422. Global synchronization signal 422 includes an indication that a new message sequence is starting, time and date data, and may include other global data. Accurate time and date data is maintained within controller 122. Data may optionally be obtained from WWV receiver 118 (FIG. 2). Following the synchronization signal, data packets 424, 432, 440, 444, etc., are sent sequentially. Each data packet includes an address and a data block; i.e., data packets 424, 432, 440, 444 include addresses 426, 434, 441, and 456, and data blocks 428, 436, 442, and 448, respectively. Additional data packets are sent until all electronic elements in the system have been addressed, as indicated by dotted line 449. After each data packet is sent, controller 122 waits for a short period 430, 438, 447, etc., for the addressed electronic system element to respond. The response is also in packet form, including the controller address and data confirming that the addressed element is responding, and providing information requested by the controller. If a message sent by the controller or an electronic element is too long for a single data packet, it is broken up into as many data packets as are needed to complete the message. For example, when new software is uploaded from the controller to user interfaces 201 or drivers 202, many data packets are required.

Turning now to the details of the software and the programming of system 120, as indicated above, when a new system is first installed, the first part of the programming process is a task called “commissioning”. The commissioning process is shown in FIG. 21. During this process, the various slave devices in the system will be identified and given names that identify their physical location within the system. For a controller to exchange information with specific slave devices, that slave device must have a unique “address” of some kind. As indicated above, this address is used as part of the message to the device to indicate that the data is intended for or requested from that device and that device only. As also indicated above, each slave 201, 202 and controller 122 contains an EEPROM memory device either as a discrete component or as part of a microprocessor chip. Several locations of the EEPROM memory are reserved for the “commissioning date” and several more are reserved for the “device address”. These are left blank at the time of production. The slave devices are installed and connected to a trunk 170, 159 at 452. Initially, no slaves respond to any controller messages. At 454, the installer or user touches the commissioning “button” on a touch screen, which preferably is any part of the touchscreen. Each slave includes a “commissioning button”. On touchscreens 132, 162, 176, pressing the quick-access button or the touchscreen serves this purpose. On level controls 140, pressing either position of the rocker serves. Drivers 202 and other devices without other buttons have a button specifically dedicated to commissioning. The first touchscreen touched becomes the default programming terminal for the system. It is first used in process 456 to set the time and date values of the master clock in the controller. The date so set becomes the commissioning date. The commissioning date is repeatedly broadcast to all slaves 201, 202 as part of the global sync message sequence 422 and the slaves store this date in local memory. Further, the pressing of the commissioning button sends a Requested Data Returned to the controller from the slave device. At 458, the controller sends a screen to the programming touchscreen that requests data for the device, including room and wall locations. The installer or user enters this data at 460, and commissioning of the device is initiated. The controller sends a Send Data message to address zero with the byte 2 parameter of the message set to 4. (see below). The data of this message is the “working address” to which the device will be set and referred to for all future communications. The device saves that address to EEPROM along with the commissioning date. The controller determines if the device is a touchscreen device at 464. If the device is not a touchscreen user interface, the controller sends the screen requesting data for the device to the programming touchscreen, the data is entered on that touchscreen, and the address is set at the device to be commissioned. If the device is a touchscreen, the data request is displayed on the new touchscreen device to be commissioned, and the address is set as before. The installer or user then touches the commissioning button of the next device at 464. This continues via processes 466 and 464 until no further commissioning button is pushed, and the commissioning process ends. In this manner, the controller assigns a unique working address to each device. Anytime a new device is added to the system and its commissioning button is pressed, the commissioning screen appears automatically. At this time, all the devices are given a new commissioning date.

The purpose of the commissioning date is to facilitate reuse of system devices. An installer may install a device in a system for a given customer. If that customer then desires an upgrade, the removed device becomes available for other uses in other systems. Since a device only responds in a system with the appropriate commissioning date, the previously programmed device will not cause an address conflict in the new system and will not be recognized until a renewed commissioning process changes the device's commissioning date.

Once each slave device has been assigned an address, the system can be programmed. The commissioning process places a list of all devices and where they are located in controller 122. A programming button is also placed on each touchscreen. The programming process is shown in FIG. 17. First, program key 1110 of one of interface units 132, 162, 176 is touched. The controller sends a display list 195 (FIG. 15) to the interface unit, the program key of which was touched, and this list is displayed 304. The user touches 306 the device on the display that it is desired to program. Controller 120 determines if this is a touchscreen device at 308, and if it is, the user is then, at 310, allowed to add or delete screen objects to be programmed. This is done by displaying the available objects, such as level control switches or controlled devices, and using buttons at the bottom of the touchscreen to indicate whether the objects should be added or deleted. When the touchscreen is entirely programmed, the software automatically arranges 312 buttons for the devices and objects on the touchscreen. The buttons are automatically arranged in the order in which they were added, displaying each in the next available space from left to right and then from top to bottom. Buttons that need to be further programmed are touched at 314, and the system displays a list of attributes at 316. These attributes include what interface or interfaces 201 are intended to control which drivers 202, or conversely, which drivers are to respond to which interfaces, the default settings of level controls, the default settings of other electronics, minimum and maximum values, times at which functions may be turned on or off, etc. The list of attributes, while shown following the automatic arranging of buttons, can also be accessed prior to the arranging of buttons, and in fact at any time in the programming after commissioning provides a list of devices. Usually, programming is an iterative process in which objects and attributes are selected and programmed, rearranged, deleted, reselected, etc., until the screens are exactly as the user desires. The attributes are programmed at 318. If the device is not a touchscreen, the program proceeds immediately to displaying 316 the list of attributes. When the selected device is programmed, list 195 is again displayed, and the user can elect to program another device at 320, by touching 306 a device on the display, or exit from programming mode and return 322 to normal mode.

It is a feature of the invention that the commissioning and programming processes are interruptible and resumable—that the user may move between the processes as needed, working in the manner deemed the most comfortable.

An important part of the invention is the manner in which slave devices 201, 202 communicate with controller 122. As indicated above, in the preferred embodiment, building automation system 120 utilizes RS422 transmission over 100 ohm terminated CAT5 cable in 8-bit asynchronous format at 250 or 500 kilo baud with CRC-16 error checking. Communication between the controller, the drivers, touchscreens, level control, and other devices is controlled and timed by the controller. The controller starts a communications round preferably every 50 msec. The start of a new round is signaled by the first of series of global messages, as described in detail below. In the preferred embodiment, there are no slave responses to global messages except during the commissioning process as described above. The first slave device is then sent a message and must return a response within a short time. This process proceeds until all of the devices have been serviced.

The messages exchanged between that controller and slave usually contain an update of control data. If data has not changed since the previous round, shorter messages are utilized that just check status. Examples of longer messages include screen changes for touchscreens, video images, and software updates. In some cases, time may not permit communications with all of the desired data transfer to complete in a single 50 msec interval, requiring data to be split into multiple messages sent over successive rounds. The most common example is that of software updates occurring while the system is already heavily loaded, for instance due to video image transfers.

The specific details of a message depend on the devices involved. However, the general format of a message is as described in the following protocol.

Messages originating at controller 122 include global messages 422 and data messages, such as 428. Global messages are messages sent by the controller to all devices in the system with no device sending a response, except for commissioning. The data sent in these messages is of interest to all or to a multitude of slave devices. In the preferred embodiment, global messages are synchronization messages, though other global messages are possible. Sync messages are used to signal the beginning of each communication round. They also provide global data that is needed by most slave devices. All sync messages utilize the following format:

-   -   byte 0—00sddddd where s is one for the starter byte and zero for         the successive data bytes, and d is the data.     -   bytes 2,3—16-bit CRC.         One sync message is sent at the start of each communications         round. A series of sync messages are sent in successive rounds         in the following order (only byte 0 shown):     -   001sssss—lower 5 bits of seconds count     -   000mmmms—lower 4 bits of minutes count, upper bit of seconds         count     -   000000mm—upper 2 bits of minutes count     -   000hhhhh—hours count     -   000ddddd—day-of-month count     -   0000mmmm—month count     -   000yywww—lower 2 bits of year count, day-of-week count     -   000yyyyy—upper 5 bits of year count     -   000ddddd—commissioning date, day-of-month     -   0000mmmm—commissioning date, month     -   000yywww—commissioning date, lower 2 bits of year, day-of-week     -   000yyyyy—commissioning date, upper 5 bits of year         Additional data may be added to this sequence to meet future         requirements. Time is counted in seconds from midnight. Date is         counted from 1-1-2000.

A group of the messages provides a complete time, date, and commissioning date update throughout the system, and devices that utilize this data keep a record in local memory that is updated each time the data is received. Slaves monitor the reception process so that if a data value does not arrive on time, the rest of the data is ignored until the next 001sssss message. All clocks in the system are synchronized within 600 milliseconds of the master.

A Detach message is sent if a device button is pushed before the controller is ready to commission it. This occurs if a device other than a touchscreen is pushed before a programming touchscreen has been assigned or if another touchscreen is touched before the system time and date have been set. The message is also used to drop the system out of commissioning mode after a timeout period has elapsed. The Detach message uses the following format:

-   -   byte 0—00111111 where s is one for the starter byte and zero for         the successive data bytes, and d is the data.     -   bytes 2,3—16-bit CRC

Data messages include Device Status Interrogation messages, Send Main Variables messages, Send Data messages, and Request Data messages. Device Status Interrogation messages have the following format:

-   -   Bytes 0,1—10nnnnnn nnnnnnnn where n is the working address of         the slave being interrogated.     -   Bytes 2,3—16-bit CRC.

The Send Main Variable message is a space-saving way to send any combination of the first seven variables. This requires six bytes to send one variable value or eleven bytes to send seven variables. The Send Main Variable message has the following format:

-   -   Bytes 0,1—11nnnnnn nnnnnnnn where n is the working address of         the slave being addressed.     -   Byte 2—0vvvvvvv where a one in any of the positions 0-6         indicates that a value for the corresponding variable 0-6 will         follow.     -   Bytes 3 to end-2—variable value 0-6 as required     -   Bytes end-1 and end—16-bit CRC.

The Send Data message sends up to 256 bytes of data. The destination for the data is specified in the instruction coding in byte 2. The format of the Send Data message is as follows:

-   -   Bytes 0,1—11nnnnnn nnnnnnnn where n is the working address of         the slave being addressed.     -   Byte 2—10000iii where iii represents the data destination as         follows:         -   0—variables (in pairs as variable number followed by value)         -   1—attributes (full set as in template)         -   2—screen page (touchscreens & remotes)         -   3—reserved         -   4—address data (used in commissioning process)         -   5—code update         -   6—more data, append to previous         -   7—more data, final record     -   Byte 3—count of data bytes to follow     -   Bytes 4 to end-2—data     -   Bytes end-1 and end—16-bit CRC.

The Request Data message is sent by the controller and causes a block of data to be sent by the slave. Its format is as follows:

-   -   Bytes 0,1—11nnnnnn nnnnnnnn where n is the working address of         the slave being addressed.     -   Byte 2—11000iii where iii represents the source of the data as         follows:         -   0—variables         -   1—reserved         -   2—reserved         -   3—reserved         -   4—information block         -   5—reserved         -   6—reserved         -   7—device data—returns data that describes the device type,             manufacturer name, manufacturing rev, embedded firmware             copyright notice, and other device specific data.     -   Bytes 3 and 4—16-bit CRC.

Messages are also sent by slave devices 201 and 202. Slaves only respond to messages which contain their specific working address and commissioning date. The only two exceptions to this rule have been explained above in the section describing the commissioning process. In the preferred embodiment, there are four types of slave messages: Status Returned; Main Variables. Changed; Request for Screen, Program or Scene Data; and Changed Variables or Requested Data Returned. The Status Returned message only is used for returning device status. Its format is as follows:

-   -   Bytes 0,1—01nnnnnn nnnnnnnn where n is the working address of         the slave responding.     -   Byte 2—10ssssss where s is the status of the device, and is         device dependent. Some status codes are standardized:         -   0—All OK         -   1—screen refresh (touchscreens)         -   2—screen page change (touchscreens)     -   Bytes 3 and 4—16-bit CRC.

The Main Variables Changed message returns the changed values for up to seven variables. It has the following format:

-   -   Bytes 0,1—01nnnnnn nnnnnnnn where n is the working address of         the slave responding.     -   Byte 2—0vvvvvvv where a one in any of the positions 0-6         indicates that a value for the corresponding variable 0-6 will         follow.     -   Bytes 3 to end-2—variable value 0-6 as required     -   Bytes end-1 and end—16-bit CRC.

The Request for Screen, Program or Scene Data message requests the data from the controller. It has the following format:

-   -   Bytes 0,1—01nnnnnn nnnnnnnn where n is the working address of         the slave responding.     -   Byte 2—1100iiii where iiii is the data type         -   01—Scene edit screen data         -   10—Program screen, device selection         -   11—Program screen, touch device selection         -   12—Program screen, attribute selection         -   13—Program screen, touch attribute selection         -   14—Program screen, device controlled or controlling             selection     -   Byte 3—selection code for program screen or scene code     -   Bytes 4 and 5—16-bit CRC.

The Changed Variables or Requested Data Returned message returns the data previously requested. It has the following format:

-   -   Bytes 0,1—01nnnnnn nnnnnnnn where n is the working address of         the slave responding.     -   Byte 2—11100iii where iii is the data type         -   0—variables (in pairs as variable number followed by value)         -   1—Attribute change, new value             -   Byte 4—Attribute code             -   Bytes 5-n—New value, length varies according to                 attribute         -   7—Device Data—returns data that describes the device type,             manufacturer name, manufacturing rev, embedded firmware             copyright notice, and other device specific data.     -   Byte 3—count of data bytes to follow     -   Bytes 4 to end-2—data     -   Bytes end-1 and end—16-bit CRC.         As discussed above, if the device has not yet been commissioned         and it's commissioning button has been pressed, the Requested         Data Returned is sent where the byte 2 parameter is 3 and the         data sent corresponds to the device type.

The messages sent by slave devices 201, 202 preferably also include a manufacturer's, licensee's, installer's, or other protective code. This code is preferably inserted into memory 1022, 1322, 1319, 286 of the slave devices at manufacture, during installation, or at some other time, and included in the Requested Data Returned message, but may also be included in any of the other messages, or contained within a separate message used during the commissioning process. For example, it may be sent with the first signal sent by device 201, 202 when the commissioning button is pressed. In the preferred embodiment, the Device Data bytes in the messages described in detail above contain this code.

The fundamental purpose of this code is to protect the integrity of system 120. System 120 according to the invention is a sophisticated system in which all electronic elements 122, 201, 202, and 203 depend on the other elements for the system to operate properly. Since a key aspect of the invention is that all electronic elements are connected to a common trunk, or just a few trunks, all of which connect to controller 122, a single defective or otherwise malfunctioning electronic element could paralyze a portion of the system. Further, it is recognized that once the system becomes commercially successful, others will be able to make cheap knock-offs of the electronic units, such as a level control 140 or other user interface 201 or driver 202. Generally, as known in the art, such knock-offs may be of inferior quality or contain software incompatibilities. For example, a knock-off may not utilize an UL-approved circuit board. Such an inferior board could cause a fire hazard or other problem.

On the other hand, manufacturers, distributors, and installers that agree to abide by strict manufacturing and installation specifications may be licensed by the owner of the technology of the invention. These licensed manufacturers, distributors, and installers will be able to be policed by the owner of the technology, thus ensuring a degree of quality that will not cause problems within system 120. Thus, these licensed manufacturers, distributors, and installers are assigned protective codes which identify them.

As indicated above, the protective codes are preferably included by a user interface 101 and device driver 102 in the Requested Data Returned message during the commissioning process. Controller 122 uses this code to indicate what licensed manufacturer or distributor made each device in the system, and to provide a file of manufacturers and licensees the devices of which are included in the system. If manufacturer or distributor is not the owner of the technology or a licensee, the controller will not recognize nor communicate with the device and it will not operate within the system. An alarm or other indication that a non-qualified device has been connected to a trunk may also be output.

The protective system also is useful in policing licensees. For example, it permits the installer, user, and technology owner to determine if a particular licensee is manufacturing inferior equipment or if an installer is making defective installations. It also prevents imitators from selling devices to be placed on the system, while allowing licensees to do so. In the preferred embodiment, the protection method has three parts: 1) All firmware and software is to be copyrighted and an embedded copyright notice is placed in all code; the notice is in ASCII format near the beginning of the object file. For example, the notice can read “Copyright 2003, LifeSpace Inc., Broomfield Colo. USA”. 2) The copyright notice is followed by two bytes that are reserved for a manufacturers code. Thus, a licensee uses a common code with the code creator's copyright notice in it, but the two bytes following the notice would be different for licensees. 3) During commissioning, the controller 122 will cause the copyright notice embedded in the device to be transmitted as part of a message. If it is not the appropriate copyright notice, the device is not given a working address, and will thus not operate in the system.

Controller 122 performs three key tasks: editing a program file, moving program data from controller 122 to user interface units 201, and interpreting the data returned by the target device. The task of editing a program file occurs through the cooperation of controller 122 and the touchscreen user interface units, such as 162. Preferably, screen editors are a part of the touchscreen user interface unit such as 162, and they allow program items to be selected, added, modified, and deleted. The user program resides as a file within controller memory 245. During the editing process, controller 122 must send appropriate segments of this file formatted for touchscreen 188 of the user interface units. Once a user program is edited in the controller's program file, it must be continuously interpreted to control the devices in the system.

A feature of the invention is that building automation system 120 passes data instead of passing commands. For example, if a user wants level control 140 to lower the lighting of control lighting fixture 142, the user contacts level control 140 to change the lighting level of lighting fixture 142. This contact changes a data variable in level control 140 and, as discussed above, controller 122 periodically queries level control 140 as to whether it has any changed data. Controller 122 changes the old data for the particular variable in the program to the new data and responds by sending a data signal to power driver 127 during the periodic data packet exchange to power driver 127 to change the power output to lighting fixture 142, which then changes the lighting output of lighting fixture 142. In another example, lighting fixture 142 may include both a lighting level variable and a dimming rate variable, which can be changed by a user. This information is again transferred to controller 122 that controls power driver 127 and lowers or raises the electrical output to lighting fixture 142 by the user desired rate and level.

Another feature of the invention is that all control information is retained in one place, the program data file in controller 122. Level control 140, power drivers 202, and user interface units 201 preferably also store locally the levels that they are set at so that, in case of a building automation system 120 fault, the electrical devices will remain at their previously set value. Alternatively, several different values can be stored at the user interface units, such as the level it is set to and another level in case of system fault. Screens are saved in controller 122, but also may be saved in the memory, such as 1022, of the user interface unit on which they are displayed. For example, the default screen is generally saved in the user interface unit memory as well as the controller. To make bringing up screens fast and easy, screens are saved under a screen file designation system, such as forms_rooms for the rooms selection screen. This designation is used by the programming to select a file to draw the screen.

The controller firmware also includes a novel process for copying a program, updating firmware for all devices, or backing up system 120. The process for copying a program or updating system firmware is shown in FIG. 18, and the process for backing up the system is shown in FIG. 19. First, at 352 and 402, a memory is connected to controller 122, preferably by inserting a MMC card 533 (FIG. 5) into memory connector 244. If the memory contains a firmware update, the controller recognizes this at 356 (FIG. 18). Controller 120 then queries itself and each slave device 201, 202 in the system and recognizes at 358 that the system does not contain a level of firmware equal to or later than that of the MMC card 533. It then checks 360 if the firmware in memory 533 is appropriate for the system. If these conditions are met, the firmware is uploaded to the appropriate memories in system 120. The program via process 364 checks each device in the entire system 120, and for each device performs the firmware update process for that device as appropriate.

If the memory is blank, at 406 (FIG. 19), controller 122 recognizes that the memory is blank. The controller then downloads 408 or copies the data of the program data file from controller 122 to the memory, which is preferably an MMC card 533. Memory 533 can then be used to automatically upload the program to an identical system via the process of FIG. 18. This is a highly useful and expense-saving process when installing the system in a plurality of similarly constructed buildings, such as an apartment complex. If there are small differences in the installation in such a situation, the system can be uploaded automatically to the parts that are the same, and then the non-identical parts can be separately installed and programmed.

Building automation system 120 according to the invention makes extensive use of LCD interface units 132, 162, 176 with touchscreens as the main means of user control. Part of the design philosophy of the system entails minimizing the number of levels of screens that a user must navigate to perform common functions. A key to accomplishing this is that most often used functions appear on the main screens. For example, the main screen of a touchscreen control unit might show buttons for dimming a light, setting some lighting scenes, switching a fan on and off and adjusting it's speed, and viewing the time, temperature, and date. Each of these functions is available with a single button push, and no other screens are needed to accomplish the function. FIGS. 22A and 22B is a flow chart 600 illustrating many of the various types of display screens and screen objects available in the preferred embodiment and their functional relationship. These two figures should be viewed by connecting them along the dashed line at the bottom of FIG. 22A and the top of FIG. 22B to show the complete flow chart 600. The system includes a top layer 604 of programmable operation screens and keys on the top side of the figures, plus fixed underlying layers 605 of programming screens 670 and commissioning screens 700 on the bottom. Generally, top level screens 604 are readily programmable by the user, which generally, at least initially, will be the installer, while, generally, lower level screens 605 are preprogrammed by the manufacturer. Operation screens 604 include user screens 6.06 and 608 made up of user programmable screen objects 603. That is, the screens 606 and 608 are made up of screens and objects such as those just to the right of line 607. The programming system allows the user to select the screen objects the user would like to have ready access to and to arrange them on programmable screens 606, 608 as the user sees fit. These programmed screen objects will be displayed on a main user screen 606 in the order determined by the programmer. If the selection exceeds the display room of a single screen, an additional pages button 253 is automatically added to the first screen, and an additional screen 608 is started. As many additional screens as needed are added.

User programmable screen objects 603 include on/off objects 610, level control objects 612, scene objects 614, ROOMS objects 1106, blank spaces 621, additional pages objects 253, and special function objects 660, which include a TIME object 624, DATE object 627, TEMPERATURE object 630, HUMIDITY object 632, WEATHER object 640, SECURITY object 644, INTERCOM object 652, AUDIO object 656, and SPRINKLER object 661. The invention contemplates that many other user programmable screen objects 603 will be devised as building automation systems 120 according to the invention are developed.

On/off objects are used to control devices 203, which can either be on or off. Level control screen objects 612 are used to control devices that have desirable settings between on and off, such as the brightness of lamps or the speed of motors, such as in ceiling fans or fireplace blowers. As shown in FIGS. 10 and 11, level control screen objects such as the MAIN LIGHT button, the CENTER light button, the FRONT light button, and the REAR light button in FIG. 10 and the FAN, AIR, and HEAT buttons in FIG. 11 have arrow buttons for up 256 and down 257, a space 258 for the name of the function controlled, and a bar-graph 255 indicating the power level currently programmed. In FIG. 10, bar graph 255 for the MAIN LIGHT shows that the main lighting is at a full power level while the bar graph for the CENTER light shows that that the light is at about the half power level.

Scene buttons screen objects 614 allow a combination of devices to be set at the same time, each to a different value. The number of devices controlled is selectable. In the simplest case, a scene button screen objects may control only one setting of a single device, such as a button that, when pressed, turns a fireplace alternately on and off, or a button that sets one level to a lamp. A complex example is a button that might be labeled “FIRESIDE” which dims the main room lights, turns on mood lights over art objects, turns on the fireplace, and switches on the whole-house audio system to soft classical music. Scene button screen objects may be linked in groups that control the same devices but have independent levels, such as a set of lighting buttons labeled as “DINNER”, “CLEAN”, “CARDS”, AND “OFF”. In such a case, the DINNER button sets the lighting and music in the room, which is a dining room, at a relatively low level for eating, the CLEAN button sets the lighting at a full-on level and the music at an intermediate level for clean-up after eating, the CARDS button that sets the lighting at an intermediate level and the music at a low level for games, such as cards, and the OFF button turns the lighting and music off. Display 250 in FIG. 10 shows MUSIC, READ, MOVE, CLEAN, and ALL OFF scene buttons.

As discussed above in connection with FIG. 11, touching ROOMS screen object button 1106 provides a ROOMS SELECTION screen 622 which includes a button for each room in the building, or a series of screens, one for each floor of the building. Touching a button on screen 622 on which the name of a specific room appears operates a change of mode function 623, which brings up the main screen for that room, just as if the operator was in that room. From then on, the touchscreen operates just as the screen in the distant room. In these screens, a RETURN screen object button is added which, when pressed, causes the user to return back to normal operation. An example use of this feature is a parent who wishes to find out if a child's light has been turned out. The parent can even turn the light out himself. For each touchscreen, the rooms which may be accessed from that screen are programmable. Optionally, a ROOMS PASSWORD screen 620 may be programmed between ROOMS button 1106 and ROOMS SELECTION screen 622. A BLANK SPACE screen object 621 places a blank space in an area of the user screen. This function is used when there are not enough screen objects on a user screen to fill up the screen. By inserting blanks, the other screen objects can be spread out over the screen.

As discussed in connection with FIG. 17, after programming, upper level buttons 604 are automatically arranged into a series of user screens 606, 608, etc., in the order they were selected. As indicated by dotted line 609, these user screens may be sequentially accessed by touching ADDITONAL PAGES screen object button 253. This function has been discussed in detail above in connection with FIG. 10.

Special function screen objects 660 correspond to usually pre-programmed subsystems of the system. The invention contemplates that other subsystems other than those shown also will be designed and used. When a special function screen object button 660 is pushed, a screen appears that is dedicated to that function. For simple functions, only a single screen is needed. Complex functions, such as the security subsystem, may utilize several screens. It should be noted that, as shown in FIG. 10, some special function screen objects 254, such as time, temperature, and date, are not displayed in a “button” format, but simply display information, such as the time, which if touched, acts like button or key.

Building automation system 120 keeps track of time and date to a very high degree of accuracy, even through power failures, and distributes this time to all devices in the system. If TIME screen object 624 is programmed on a touchscreen, the current time is displayed in hours, minutes, and seconds. The format may be selected as AM/PM or military time. Touching TIME screen object 624 brings up a TIME ALARM SET screen 625 that allows the setting of alarms. A button on screen 625 brings up additional time features, such as displays of the current time in several time zones. The alarms and selection of the time zones are programmable by the user, but the time in each of the selected zones is automatically provided by controller 122, and the accuracy of that time may be further enhanced by the use of an optional WWV receiver 118 (FIG. 2). Touching DATE screen object button 627 brings up an APPOINTMENT ALARM SET screen 628 that permits setting of appointment alarms. A button on screen 628 leads to CALENDAR screen 629, which provides a calendar and other date features. Again, the appointments are preferably user programmable, while the calendar is provided as a software function preferably provided by third parties.

TEMPERATURE screen object 630 and HUMIDITY screen object 632 show the current temperature and humidity. Touching either TEMPERATURE screen object 630 or HUMIDITY screen object 632 lead to a series of HVAC screens 634, 636, 637, and 638. HVAC SET POINT screen 636 permits the setting of temperature, humidity, and other HVAC functions. Touching a HVAC SCHEDULE change button on screen 636 brings up a HVAC SCHEDULE CHANGE screen 638 that permits changing the HVAC schedules. Optionally, password screen 634 can be inserted between screens 630, 632 and screen 636, and/or password screen 637 can be inserted between screens 636 and 638. Screens 636 and 638 are iterative along path 639 until all HVAC settings are as desired.

Touching WEATHER screen object button 640 brings up a screen 641 that either provides weather data from local sources, provides weather information from third party service providers, such as Internet sites, or both. Several manufacturers produce suites of weather sensors for home or office building installation. Building automation system 120 can provide an optional port for interface to these systems. When the WEATHER button is pushed, a screen appears that indicates the current readings of the weather sensors. Using a HISTORY button on screen 641 brings up an additional screen 642 that displays the recent history of each of these weather parameters.

Conventional security sensors are scanned by system 120 using an optional security scanner module, preferably one of the add-on cards 117 in cabinet 172. As is known in the art, these include contact/closure sensors for the windows and doors of a house or building and motion detectors for detecting motion by an object within or outside of a building. All of these can be wired to the security scanner module. In addition, as indicated above, motion detectors and cameras are options that may be installed in user interfaces 201. The fact that a powerful processor and memory are included in each user interface unit and add-on card 117 permits sophisticated sound detection firmware to be included for detection of sounds such as breaking glass, a baby crying, an automobile in the driveway, chain saws, cries for help, and voice recognition software that can respond to an alarm at the sound of specific voices. Thus, system 120 can provide complete surveillance capabilities that include baby monitoring, visitor identification at entry doors, and whole-house supervision. Built-in motion detector 186 may be programmed to activate lights, digital camera 187, and alarms when an intruder is present. Furthermore, building automation system 120 can activate door locks in the building upon detection of an intruder as well. The system may be programmed so that motion detector 186 may initiate turning on lights when a person enters a room, and then gradually turn off when the person leaves. The security systems are preferably connected to a security system monitoring company or the police via a telecom interface function discussed below. When SECURITY screen object button 644 is pressed on a touchscreen, a SECURITY STATUS screen 646 appears showing the status of each zone of the security subsystem and whether or not the system is armed. This screen also has a PANIC button, which may be pressed to initiate an alarm manually. The security screens are preferably designed and programmed by a person experienced in the security area. Pressing one of the buttons on screen 646 brings up a lower level SECURITY PASSWORD screen 648 that requires the entry of a password, which leads to a SECURITY ERROR AND OVERRIDE screen 649 that permits the overriding of alarms. Optionally, a SECURITY ACCESS PASSWORD screen 645 may be inserted between screens 644 and 646.

Touching INTERCOM screen object button brings up a screen 654 or series of screens that permit voice communication with other rooms in the building.

Touching AUDIO screen object button 656 brings up a series of screens 658 that permit the control of source, channel, volume, and other features in a whole house stereo system. A feature of the invention is that control trunks 170, 159 can be used to move audio data as well as programming data. An audio module can be placed in control cabinet 172 that will provide the whole house with multiple channels of digital stereo audio. Alternatively, audio or video data may be piped throughout a building on wiring separate from system 120. In this case also, the audio/video system functions are preferably controlled by a module that is located within module bays 173 of control cabinet 172.

By addition of an optional sprinkler control module, usually in cabinet 172, system 120 is able to control lawn sprinklers, water features, and other similar systems. Like other subsystems, this has the advantage that the sprinklers may be controlled from any room in the house. Pressing SPRINKLER screen object button 660 brings up a SPRINKLER CONTROL screen, which shows the status of these systems and permits testing and other manual control. Further screens 666 allow the schedule of events of these devices to be programmed. If the weather subsystem is also installed, sprinkling may be controlled according to the measured rainfall, and features may be disabled while rain is occurring. The sprinkler system is preferably linked to the main time reference, so no resetting is needed for daylight savings time transitions. An optional SPRINKLER ACCESS PASSWORD screen 662 may be inserted between object 660 and screen 664, and an optional SPRINKLER SCHEDULE PASSWORD screen 665 may be inserted between screens 664 and 666. The sprinkler programming is iterative along path 668 until all sprinkler functions are set.

As also discussed above in connection with FIGS. 11 and 15, PROGRAM screen object button 1110 brings up a PROGRAM DEVICES SELECT screen 195 (FIG. 15) which lists all the programmable devices in system 120 and shows the room in which each device is located. Underlying list screen 195 is a group of screens 675, which permit the programming of the screens for each interface unit 202 in the building. PROGRAM button 1110 may optionally require entry of a security code at screen 671 to permit programming access. If the device selected to be programmed is a touchscreen user interface unit, screen 195 permits one to go to either a DEVICE ATTRIBUTE SELECT screen 674 or a SCREEN OBJECT SELECT screen 676. If the device is not a touchscreen user interface unit, the only choice is the DEVICE ATTRIBUTE SELECT screen 674, which is displayed on the default programming screen. When first programming a touchscreen, it is necessary to go to SCREEN OBJECT SELECT screen 676. This screen permits one to select and add, move, or remove screen objects. Screen objects are first selected via SCREEN OBJECT ADD SELECT screen 680, from a list of available objects. The selected objects are then given attributes via SCREEN OBJECT ATTRIBUTE SELECT screen 678. Examples of attributes that may be selected for a screen object are room name, label, such as “west wall”, minimum value, maximum value, fade time, auto-on time, auto-off time, lighting curve, and linked devices. “Fade time” is a term for how long it takes a level control to go from the maximum to minimum setting and vice-versa. The lighting curve describes the correspondence between the setting of a level control and the power supplied. The linked device attribute describes how many devices are to be linked to a screen object. If the attribute entry is something that requires alphanumeric entries, such as the room name, the system goes to ALPHANUMERIC ATTRIBUTE EDIT ABC screen 696, which allows entry of letters of the alphabet. The programmer can switch between screen 696 and an ALPHANUMERIC ATTRIBUTE EDIT 123 screen 698, which permits the entry of numbers. If the attribute entry is one that requires only numbers, such as a maximum value, the system goes to NUMERIC ATTRIBUTE EDIT screen 684. If the attribute requires a choice of several alternatives, the system goes to MULTIPLE CHOICE ATTRIBUTE EDIT screen 686. If an attribute is a device linkage, the system goes to a DEVICE LINKAGE EDIT screen 688. If the attribute requires time/date information, the system goes to a TIME/DATE EDIT screen 690. Once a screen object is selected, it can be removed via a SCREEN OBJECT DELETE button, which brings up a SCREEN OBJECT REMOVE WARNING screen 682, which allows the programmer to delete the object. Screen objects selected are listed on SCREEN OBJECT SELECT screen 676. A scroll button on this screen allows the programmer to select a screen object. Screen objects can be moved simply by selecting them on screen 676 and moving them to another line of the listing. If the device to be programmed is not a touchscreen, or if it is desired only to program the attributes of the touchscreen or screen objects associated with the touchscreen, the program proceeds to DEVICE ATTRIBUTE SELECT screen 674. Depending on the attribute selected, the system displays screens 696, 684, 686, or 688, which are used as discussed above.

Commissioning screens 700 are shown at the bottom of FIG. 22. Each new device has a commissioning button, which is on a commissioning screen if it is a touchscreen, and a hardware button otherwise. If system 120 has never been commissioned, or if system 120 is reset, screen 720 having a commissioning button is displayed. When the commissioning button is pressed, TIME/DATE EDIT screen 690 is displayed. When the time and date are entered, this is accepted as the commissioning date and sent to all devices' in the system. A NEW DEVICE COMMISSION screen 704 is then displayed on the default program screen. The device to be programmed is selected on screen 704, which causes a NEW DEVICE ROOM NAME screen 706 to be displayed on which the room in which the device is located can be selected. If the room is not present on screen 706, NEW DEVICE ROOM NAME ADD screen 708 is selected and displayed. A new room name can be entered on this screen, and the system then goes to NEW DEVICE LOCATION NAME screen 710. Once the new device location is entered, the device is commissioned and COMMISSION DEVICE screen 712 is displayed which allows a new device to be commissioned to be selected. If a new device is added, NEW DEVICE PRESS-TO-COMMISSION screen 702 is displayed. When the commission button on this screen is pressed, NEW DEVICE COMMISSION screen 704 is displayed on the default touchscreen user interface unit and the commissioning proceeds as described above.

Many other subsystems can be included in system 120 according to the invention. For example, preferably, building automation system 120 further includes a phone interface that provides the function of dialing an alarm monitoring company and playing a pre-recorded message. Also preferably, building automation system 120 accepts incoming calls to control the system from a remote location either by voice, tone, or digital modem signaling. User interface units 162 preferably include the capability to serve as speakerphones with a central phone number directory. The system can be used to control electronic door locks from any room in the house. Pool/spa controls, such as heating, chemical additives, and filters, aquarium controls for heating and filters, and other water features such as fountains and waterfalls are just some of the capabilities of the system.

A feature of the invention is that the programming system of building automation system 120 is symmetrical in design, meaning in the case where level control 140 is controlling lighting fixture 142, a user can go into the program and look at either lighting fixture 142 or level control 140 and change that interaction.

Building automation system 120 can be wired into existing homes or buildings that are pre-wired with low voltage control trunk 170. For installation into these homes or buildings, low voltage control trunk 170 is routed to the switch boxes in the existing house or building. The existing switch boxes are replaced with power drivers 127, 143, and 158 at that location and at that spot. Low voltage control trunk 170 goes to the actual switch location. For example, if you have four lights controlled by four level controls on the wall, then a power driver 127 would be put in place of the existing level controls and then a user interface unit 201, preferably a level control 140 or touchscreen 162, is placed over or near the power driver.

Furthermore, building automation system 120 can be wired into existing homes or buildings that do not include low voltage control trunks 170. In this scenario, power drivers 202 are installed in place of the existing switch plate and a user interface units 132, 162, or 140 are located above it. Because no low voltage control wiring is in place in this scenario, RF or other wireless circuitry added to interface units 132, 162, or 140 is used to provide the same functional control over the electrical devices. The existing AC wiring is routed to power drivers 202. User interface units 132, 136, 152, and 162 or level control 140 then communicate to controller 122, which also includes RF or other wireless circuitry.

A feature of the invention is that the functional connection of electrical devices is totally independent of the way in which they are wired. So long as every electrical device is attached to a driver connected to one of control trunks 170, it can be used in building automation system 120 in any manner the user desires. Thus, when installing an electrical system in a house, the electrical contractor only needs to be sure each electrical device is connected to a driver 202 that is connected to a trunk. User interface units 201 do not have to be associated with any particular device, but can be placed in the building as efficient and convenient control dictates.

All electronic elements in the system, including user interfaces 201, drivers 202, controller module 526, and cabinet 172, are available in designer and fashion colors that coordinate with receptacles, cable and TV jacks, and other accessory wall plates.

There has been described a novel and efficient building automation system. It should be understood that the particular embodiments shown in the drawings and described within this specification are for purposes of example and should not be construed to limit the invention. Further, it is evident that those skilled in the art may now make numerous uses and modifications of the specific embodiment described, without departing from the inventive concepts. It is also evident that the processes recited may in some instances be performed in a different order, or equivalent structures and processes may be substituted for the various structures and processes described. The structures and processes may be combined with a wide variety of other structures and processes. 

1-67. (canceled)
 68. A method of doing business comprising: licensing at least a portion of an electronic system technology to a licensee, said electronic system including an electronic slave device and an electronic controller, assigning said licensee a protective code; storing in said controller software or firmware instructing said controller to: receive said protective code from said slave device; and not recognize or communicate with said slave device if said code is not received.
 69. A method as in claim 68 wherein said electronic system is a building automation system.
 70. A method as in claim 68 wherein said process of receiving said protective code includes sending a message from said controller to said slave device and receiving said protective code in response to said message.
 71. A method of enforcing copyright protection for software or firmware, said method comprising: providing an electronic system including a system controller and a electronic device, said system controller including a processor and a memory, said electronic device including protectable software or firmware; said memory including instructions to cause said processor not to communicate with or recognize said device if said software or firmware does not include a proper copyright notice.
 72. A method as in claim 71 wherein said system requires a working address for said device to communicate with said controller, and said not communicating with or recognizing comprises not providing a working address to said device.
 73. A method as in claim 68 wherein said software or firmware includes instructions to output an alarm or other indication that a non-qualified device has been connected to said system if said code is not received.
 74. A method as in claim 68 wherein said software or firmware includes instructions to store a list including manufacturers, distributors, or licensees which have devices included in said system.
 75. A method as in claim 68 wherein said software or firmware includes instructions to output an indication that inferior equipment has been attached to said system or that a deficient installation has been made. 